<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>HElib: helib::IndexSet Class Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">HElib Implementing Homomorphic Encryption</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacehelib.html">helib</a></li><li class="navelem"><a class="el" href="classhelib_1_1_index_set.html">IndexSet</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classhelib_1_1_index_set-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">helib::IndexSet Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A dynamic set of non-negative integers.  
 <a href="classhelib_1_1_index_set.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_index_set_8h_source.html">IndexSet.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set_1_1iterator.html">iterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a311ea65063a86b068e02f29bbef82f95"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a311ea65063a86b068e02f29bbef82f95">IndexSet</a> ()</td></tr>
<tr class="separator:a311ea65063a86b068e02f29bbef82f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae170999453ca33a0fdd73d0505c098d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#ae170999453ca33a0fdd73d0505c098d3">IndexSet</a> (long low, long high)</td></tr>
<tr class="separator:ae170999453ca33a0fdd73d0505c098d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7eaa00acd0e00b7e3ad2b56f237b39d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a7eaa00acd0e00b7e3ad2b56f237b39d1">IndexSet</a> (long j)</td></tr>
<tr class="separator:a7eaa00acd0e00b7e3ad2b56f237b39d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30a96e32a1bec249fb56f83bbb6f4afa"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a30a96e32a1bec249fb56f83bbb6f4afa">first</a> () const</td></tr>
<tr class="memdesc:a30a96e32a1bec249fb56f83bbb6f4afa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first element, 0 if the set is empty.  <a href="classhelib_1_1_index_set.html#a30a96e32a1bec249fb56f83bbb6f4afa">More...</a><br /></td></tr>
<tr class="separator:a30a96e32a1bec249fb56f83bbb6f4afa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8156f49ca3715bf0cf9c63ac8dc02172"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a8156f49ca3715bf0cf9c63ac8dc02172">last</a> () const</td></tr>
<tr class="memdesc:a8156f49ca3715bf0cf9c63ac8dc02172"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last element, -1 if the set is empty.  <a href="classhelib_1_1_index_set.html#a8156f49ca3715bf0cf9c63ac8dc02172">More...</a><br /></td></tr>
<tr class="separator:a8156f49ca3715bf0cf9c63ac8dc02172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5690665e0de625096ca1091ea3c39f74"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a5690665e0de625096ca1091ea3c39f74">next</a> (long j) const</td></tr>
<tr class="memdesc:a5690665e0de625096ca1091ea3c39f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next element after j, if any; otherwise j+1.  <a href="classhelib_1_1_index_set.html#a5690665e0de625096ca1091ea3c39f74">More...</a><br /></td></tr>
<tr class="separator:a5690665e0de625096ca1091ea3c39f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f8736538b75cd634a551a896b374ca5"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a3f8736538b75cd634a551a896b374ca5">prev</a> (long j) const</td></tr>
<tr class="separator:a3f8736538b75cd634a551a896b374ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a018572f1e76bc3c9750491f2cf02c7ca"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a018572f1e76bc3c9750491f2cf02c7ca">card</a> () const</td></tr>
<tr class="memdesc:a018572f1e76bc3c9750491f2cf02c7ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cardinality of the set.  <a href="classhelib_1_1_index_set.html#a018572f1e76bc3c9750491f2cf02c7ca">More...</a><br /></td></tr>
<tr class="separator:a018572f1e76bc3c9750491f2cf02c7ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acefa7b80f5a87642f706e726063ec462"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#acefa7b80f5a87642f706e726063ec462">contains</a> (long j) const</td></tr>
<tr class="memdesc:acefa7b80f5a87642f706e726063ec462"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true iff the set contains j.  <a href="classhelib_1_1_index_set.html#acefa7b80f5a87642f706e726063ec462">More...</a><br /></td></tr>
<tr class="separator:acefa7b80f5a87642f706e726063ec462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefa374df4b48dc9b57e58362935e2ff8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#aefa374df4b48dc9b57e58362935e2ff8">contains</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s) const</td></tr>
<tr class="memdesc:aefa374df4b48dc9b57e58362935e2ff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true iff the set contains s.  <a href="classhelib_1_1_index_set.html#aefa374df4b48dc9b57e58362935e2ff8">More...</a><br /></td></tr>
<tr class="separator:aefa374df4b48dc9b57e58362935e2ff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad782cd0552490506f78ca1ef492be1bd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#ad782cd0552490506f78ca1ef492be1bd">disjointFrom</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s) const</td></tr>
<tr class="memdesc:ad782cd0552490506f78ca1ef492be1bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true iff the set is disjoint from s.  <a href="classhelib_1_1_index_set.html#ad782cd0552490506f78ca1ef492be1bd">More...</a><br /></td></tr>
<tr class="separator:ad782cd0552490506f78ca1ef492be1bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdcf75d71242088ff55d12718beb6442"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#abdcf75d71242088ff55d12718beb6442">operator==</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s) const</td></tr>
<tr class="separator:abdcf75d71242088ff55d12718beb6442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d953c9d1a5618c1ee2ed585ff75823d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a6d953c9d1a5618c1ee2ed585ff75823d">operator!=</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s) const</td></tr>
<tr class="separator:a6d953c9d1a5618c1ee2ed585ff75823d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b52e2294f9cf2596d4245a24105555b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a8b52e2294f9cf2596d4245a24105555b">clear</a> ()</td></tr>
<tr class="memdesc:a8b52e2294f9cf2596d4245a24105555b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to the empty set.  <a href="classhelib_1_1_index_set.html#a8b52e2294f9cf2596d4245a24105555b">More...</a><br /></td></tr>
<tr class="separator:a8b52e2294f9cf2596d4245a24105555b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2957053dea143c8ca64766f514306c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#aa2957053dea143c8ca64766f514306c3">insert</a> (long j)</td></tr>
<tr class="memdesc:aa2957053dea143c8ca64766f514306c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add j to the set.  <a href="classhelib_1_1_index_set.html#aa2957053dea143c8ca64766f514306c3">More...</a><br /></td></tr>
<tr class="separator:aa2957053dea143c8ca64766f514306c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7444b5370e0abbbff89c27215912e14d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a7444b5370e0abbbff89c27215912e14d">remove</a> (long j)</td></tr>
<tr class="memdesc:a7444b5370e0abbbff89c27215912e14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove j from the set.  <a href="classhelib_1_1_index_set.html#a7444b5370e0abbbff89c27215912e14d">More...</a><br /></td></tr>
<tr class="separator:a7444b5370e0abbbff89c27215912e14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9b75f7e49d56abc2f020f1a4221e5a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#ab9b75f7e49d56abc2f020f1a4221e5a6">insert</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s)</td></tr>
<tr class="memdesc:ab9b75f7e49d56abc2f020f1a4221e5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add s to the set (union)  <a href="classhelib_1_1_index_set.html#ab9b75f7e49d56abc2f020f1a4221e5a6">More...</a><br /></td></tr>
<tr class="separator:ab9b75f7e49d56abc2f020f1a4221e5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62dffcd838262d31c68d61e830f8af3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a62dffcd838262d31c68d61e830f8af3f">remove</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s)</td></tr>
<tr class="memdesc:a62dffcd838262d31c68d61e830f8af3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove s from the set (set minus)  <a href="classhelib_1_1_index_set.html#a62dffcd838262d31c68d61e830f8af3f">More...</a><br /></td></tr>
<tr class="separator:a62dffcd838262d31c68d61e830f8af3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeac81a9e8892756bfaab435ec17e7b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#aeeac81a9e8892756bfaab435ec17e7b0">retain</a> (const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;s)</td></tr>
<tr class="memdesc:aeeac81a9e8892756bfaab435ec17e7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retains only those elements that are also in s (intersection)  <a href="classhelib_1_1_index_set.html#aeeac81a9e8892756bfaab435ec17e7b0">More...</a><br /></td></tr>
<tr class="separator:aeeac81a9e8892756bfaab435ec17e7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d96dce11e3a0564e8b59b3eaff947d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a4d96dce11e3a0564e8b59b3eaff947d2">isInterval</a> () const</td></tr>
<tr class="memdesc:a4d96dce11e3a0564e8b59b3eaff947d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this set a contiguous interval?  <a href="classhelib_1_1_index_set.html#a4d96dce11e3a0564e8b59b3eaff947d2">More...</a><br /></td></tr>
<tr class="separator:a4d96dce11e3a0564e8b59b3eaff947d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15ee7d50c3970d27013b11bf1bcb3dc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a15ee7d50c3970d27013b11bf1bcb3dc4">read</a> (std::istream &amp;str)</td></tr>
<tr class="separator:a15ee7d50c3970d27013b11bf1bcb3dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85857593c8930b1694bac62725e84caf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a85857593c8930b1694bac62725e84caf">write</a> (std::ostream &amp;str) const</td></tr>
<tr class="separator:a85857593c8930b1694bac62725e84caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3628703e1131efbb57a2e4a4282d5b9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classhelib_1_1_index_set_1_1iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a3628703e1131efbb57a2e4a4282d5b9e">begin</a> () const</td></tr>
<tr class="separator:a3628703e1131efbb57a2e4a4282d5b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d8eb89ec5e24f0dc1a5097af9bb3027"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classhelib_1_1_index_set_1_1iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#a1d8eb89ec5e24f0dc1a5097af9bb3027">end</a> () const</td></tr>
<tr class="separator:a1d8eb89ec5e24f0dc1a5097af9bb3027"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa05a17c00d661f9316d0b5caa20dac98"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_index_set.html#aa05a17c00d661f9316d0b5caa20dac98">emptySet</a> ()</td></tr>
<tr class="memdesc:aa05a17c00d661f9316d0b5caa20dac98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only access to an empty set.  <a href="classhelib_1_1_index_set.html#aa05a17c00d661f9316d0b5caa20dac98">More...</a><br /></td></tr>
<tr class="separator:aa05a17c00d661f9316d0b5caa20dac98"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A dynamic set of non-negative integers. </p>
<p>You can iterate through a set as follows: </p><div class="fragment"><div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">long</span> i = s.first(); i &lt;= s.last(); i = s.next(i)) ...</div>
<div class="line">for (<span class="keywordtype">long</span> i = s.last(); i &gt;= s.first(); i = s.prev(i)) ...</div>
</div><!-- fragment --> </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a311ea65063a86b068e02f29bbef82f95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a311ea65063a86b068e02f29bbef82f95">&#9670;&nbsp;</a></span>IndexSet() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">helib::IndexSet::IndexSet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ae170999453ca33a0fdd73d0505c098d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae170999453ca33a0fdd73d0505c098d3">&#9670;&nbsp;</a></span>IndexSet() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">helib::IndexSet::IndexSet </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>low</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>high</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a7eaa00acd0e00b7e3ad2b56f237b39d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7eaa00acd0e00b7e3ad2b56f237b39d1">&#9670;&nbsp;</a></span>IndexSet() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">helib::IndexSet::IndexSet </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a3628703e1131efbb57a2e4a4282d5b9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3628703e1131efbb57a2e4a4282d5b9e">&#9670;&nbsp;</a></span>begin()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_index_set_1_1iterator.html">iterator</a> helib::IndexSet::begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a018572f1e76bc3c9750491f2cf02c7ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a018572f1e76bc3c9750491f2cf02c7ca">&#9670;&nbsp;</a></span>card()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::IndexSet::card </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The cardinality of the set. </p>

</div>
</div>
<a id="a8b52e2294f9cf2596d4245a24105555b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b52e2294f9cf2596d4245a24105555b">&#9670;&nbsp;</a></span>clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set to the empty set. </p>

</div>
</div>
<a id="aefa374df4b48dc9b57e58362935e2ff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefa374df4b48dc9b57e58362935e2ff8">&#9670;&nbsp;</a></span>contains() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::contains </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true iff the set contains s. </p>

</div>
</div>
<a id="acefa7b80f5a87642f706e726063ec462"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acefa7b80f5a87642f706e726063ec462">&#9670;&nbsp;</a></span>contains() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::contains </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true iff the set contains j. </p>

</div>
</div>
<a id="ad782cd0552490506f78ca1ef492be1bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad782cd0552490506f78ca1ef492be1bd">&#9670;&nbsp;</a></span>disjointFrom()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::disjointFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true iff the set is disjoint from s. </p>

</div>
</div>
<a id="aa05a17c00d661f9316d0b5caa20dac98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa05a17c00d661f9316d0b5caa20dac98">&#9670;&nbsp;</a></span>emptySet()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp; helib::IndexSet::emptySet </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Read-only access to an empty set. </p>

</div>
</div>
<a id="a1d8eb89ec5e24f0dc1a5097af9bb3027"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d8eb89ec5e24f0dc1a5097af9bb3027">&#9670;&nbsp;</a></span>end()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_index_set_1_1iterator.html">iterator</a> helib::IndexSet::end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a30a96e32a1bec249fb56f83bbb6f4afa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30a96e32a1bec249fb56f83bbb6f4afa">&#9670;&nbsp;</a></span>first()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::IndexSet::first </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the first element, 0 if the set is empty. </p>

</div>
</div>
<a id="ab9b75f7e49d56abc2f020f1a4221e5a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9b75f7e49d56abc2f020f1a4221e5a6">&#9670;&nbsp;</a></span>insert() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::insert </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add s to the set (union) </p>

</div>
</div>
<a id="aa2957053dea143c8ca64766f514306c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2957053dea143c8ca64766f514306c3">&#9670;&nbsp;</a></span>insert() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::insert </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add j to the set. </p>

</div>
</div>
<a id="a4d96dce11e3a0564e8b59b3eaff947d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d96dce11e3a0564e8b59b3eaff947d2">&#9670;&nbsp;</a></span>isInterval()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::isInterval </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Is this set a contiguous interval? </p>

</div>
</div>
<a id="a8156f49ca3715bf0cf9c63ac8dc02172"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8156f49ca3715bf0cf9c63ac8dc02172">&#9670;&nbsp;</a></span>last()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::IndexSet::last </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the last element, -1 if the set is empty. </p>

</div>
</div>
<a id="a5690665e0de625096ca1091ea3c39f74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5690665e0de625096ca1091ea3c39f74">&#9670;&nbsp;</a></span>next()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long helib::IndexSet::next </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the next element after j, if any; otherwise j+1. </p>

</div>
</div>
<a id="a6d953c9d1a5618c1ee2ed585ff75823d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d953c9d1a5618c1ee2ed585ff75823d">&#9670;&nbsp;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abdcf75d71242088ff55d12718beb6442"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdcf75d71242088ff55d12718beb6442">&#9670;&nbsp;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool helib::IndexSet::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3f8736538b75cd634a551a896b374ca5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f8736538b75cd634a551a896b374ca5">&#9670;&nbsp;</a></span>prev()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long helib::IndexSet::prev </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a15ee7d50c3970d27013b11bf1bcb3dc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15ee7d50c3970d27013b11bf1bcb3dc4">&#9670;&nbsp;</a></span>read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::read </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a62dffcd838262d31c68d61e830f8af3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62dffcd838262d31c68d61e830f8af3f">&#9670;&nbsp;</a></span>remove() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::remove </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove s from the set (set minus) </p>

</div>
</div>
<a id="a7444b5370e0abbbff89c27215912e14d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7444b5370e0abbbff89c27215912e14d">&#9670;&nbsp;</a></span>remove() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::remove </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove j from the set. </p>

</div>
</div>
<a id="aeeac81a9e8892756bfaab435ec17e7b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeeac81a9e8892756bfaab435ec17e7b0">&#9670;&nbsp;</a></span>retain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::retain </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_index_set.html">IndexSet</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retains only those elements that are also in s (intersection) </p>

</div>
</div>
<a id="a85857593c8930b1694bac62725e84caf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85857593c8930b1694bac62725e84caf">&#9670;&nbsp;</a></span>write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::IndexSet::write </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/HElib/include/helib/<a class="el" href="_index_set_8h_source.html">IndexSet.h</a></li>
<li>/HElib/src/<a class="el" href="_index_set_8cpp.html">IndexSet.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
